<template>
  <view>
    <view class="template-screen tn-safe-area-inset-bottom">
      <!-- 顶部自定义导航 -->
      <tn-nav-bar :isBack="false" :bottomShadow="false" backgroundColor="none">
        <view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left" @tap.stop="goBack">
          <!-- 返回按钮 -->
          <view class="custom-nav__back">
            <view class="tn-icon-backspace tn-color-white" style="font-size: 60rpx;"></view>
          </view>
          <!-- 字 -->
          <view class="custom-nav__search tn-flex tn-flex-col-center tn-flex-row-center ">
            <view class="custom-nav__search__box tn-flex tn-flex-col-center tn-flex-row-center tn-color-white">
              <text class="tn-text-bold tn-text-xl">用户详情</text>
            </view>
          </view>
        </view>

      </tn-nav-bar>


      <!-- 页面内容 -->
      <view class="bg-contaniner">

      </view>


      <!-- 页面内容 -->
      <view class="grain-container">
        <tn-form :model="userInfo" ref="form" :errorType="['message']">

          <tn-form-item label="账号:" prop="name">
            <tn-input v-model="userInfo.account" disabled/>
          </tn-form-item>

          <tn-form-item label="密码:" prop="name">
            <tn-input v-model="userInfo.password" type="password"/>
          </tn-form-item>

          <tn-form-item label="头像:" prop="name" >
            <tn-avatar :src="userInfo.avatar"  size="xl" @click="uploadAvatar"/>
          </tn-form-item>
          <tn-form-item label="昵称:" prop="name">
            <tn-input v-model="userInfo.nickname" />
          </tn-form-item>

          <tn-form-item label="性别:" prop="sex">
            <tn-input v-model="userInfo.gender" type="select" @click="show = true"  />
            <tn-action-sheet :list="actionSheetList" v-model="show" @click="actionSheetCallback"></tn-action-sheet>
          </tn-form-item>
          <tn-form-item label="简介:" prop="intro">
            <tn-input v-model="userInfo.notes" type="textarea" autoHeight />
          </tn-form-item>

          <view class="grain-bottom">
            <button type="default" class="my-button" @click="editOne">修改</button>
          </view>

        </tn-form>
      </view>


    </view>

  </view>
</template>

<script>
import TnNavBar from "@/tuniao-ui/components/tn-nav-bar/tn-nav-bar.vue";
import uniFilePicker from "@/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue";
import uniSection from "@/uni_modules/uni-section/components/uni-section/uni-section.vue";
import UniDataSelect from "@/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue";
import uniDatetimePicker
  from "@/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue";
import {getUserInfo, updateUserInfo} from "@/api/user";
import {editOne} from "@/api/home";

export default {
  components: {uniDatetimePicker, UniDataSelect, uniSection, uniFilePicker, TnNavBar},
  data() {
    return {
      show: false,
      actionSheetList: [
        {
          text: '男'
        },
        {
          text: '女'
        },
        {
          text: '保密'
        }
      ],
      userInfo: {
        id: "",
        account: "",
        password: "",
        avatar: "",
        nickname: "",
        gender: "",
        signature: "",
        notes: "",
      }
    };
  },
  onShow() {
    getUserInfo().then(res => {
      this.userInfo = res.data;
    });
  },
  methods: {
    uploadAvatar(){
      console.log('uploadAvatar')
      uni.chooseImage({
        success: (chooseImageRes) => {
          const tempFilePaths = chooseImageRes.tempFilePaths;
          uni.uploadFile({
            url: 'https://flya.mynatapp.cc/common/upload', //仅为示例，非真实的接口地址
            filePath: tempFilePaths[0],
            name: 'file',
            success: (uploadFileRes) => {
              console.log(uploadFileRes.data);
              this.userInfo.avatar = JSON.parse(uploadFileRes.data).data;
            }
          });
        }
      });
    },
    editOne() {
      this.checkUserInfo()
      updateUserInfo(this.userInfo).then(res => {
        setTimeout(() => {
          uni.showToast({
            title: "修改成功",
            icon: "none"
          });
        }, 500);
        uni.navigateBack();
      });

    },
    checkUserInfo() {
      if (this.userInfo.account === "") {
        uni.showToast({
          title: "账号不能为空",
          icon: "none"
        });
        return;
      }
      if (this.userInfo.password === "") {
        uni.showToast({
          title: "密码不能为空",
          icon: "none"
        });
        return;
      }
      if (this.userInfo.nickname === "") {
        uni.showToast({
          title: "昵称不能为空",
          icon: "none"
        });
        return;
      }

    },
    // 点击actionSheet回调
    actionSheetCallback(index) {
      this.userInfo.gender = this.actionSheetList[index].text;
    },
    goBack() {
      uni.navigateBack();
    }
  },
}
</script>

<style lang="scss" scoped>
@import '@/static/css/templatePage/custom_nav_bar.scss';


.grain-container {
  display: flex;
  flex-direction: column;
  width: 750rpx;
  height: calc(100vh-200rpx);
  background-color: white;
  margin-top: 200rpx;

  .grain-common {
    width: 100%;
    height: 100%;
  }

  .grain-bottom {
    margin-top: 30rpx;
    width: 100%;
    height: 50%;
    display: flex;
    justify-content: center;

    .my-button {
      width: 90%;
      border-radius: 8rpx;
    }
  }
}

/* 自定义导航栏内容 start */
.custom-nav {
  height: 100%;

  &__back {
    margin: auto 5rpx;
    font-size: 40rpx;
    margin-right: 10rpx;
    margin-left: 30rpx;
    flex-basis: 5%;
  }

  &__search {
    flex-basis: 71%;
    width: 100%;
    height: 100%;

    &__box {
      width: 100%;
      height: 70%;
      padding: 10rpx 0;
      margin: 0 30rpx;
      border-radius: 60rpx 60rpx 60rpx 0;
      font-size: 24rpx;
      // background-color: rgba(255,255,255,0.1);
    }

    &__icon {
      padding-right: 10rpx;
      margin-left: 20rpx;
      font-size: 30rpx;
    }

    &__text {
    }
  }
}

/* 自定义导航栏内容 end */

.screen-shadow {
  box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.07);
  border-radius: 20rpx;
}

/* 图标容器12 start */
.icon12 {
  &__item {
    width: 30%;
    background-color: #FFFFFF;
    border-radius: 10rpx;
    padding: 30rpx;
    margin: 20rpx 10rpx;
    transform: scale(1);
    transition: transform 0.3s linear;
    transform-origin: center center;

    &--icon {
      width: 100rpx;
      height: 100rpx;
      font-size: 60rpx;
      border-radius: 50%;
      margin-bottom: 18rpx;
      position: relative;
      z-index: 1;

      &::after {
        content: " ";
        position: absolute;
        z-index: -1;
        width: 100%;
        height: 100%;
        left: 0;
        bottom: 0;
        border-radius: inherit;
        opacity: 1;
        transform: scale(1, 1);
        background-size: 100% 100%;
        background-image: url(https://resource.tuniaokj.com/images/cool_bg_image/icon_bg.png);


      }
    }
  }
}


/* 文章内容 start*/
.tn-blogger-content {
  &__wrap {
    box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.09);
    border-radius: 20rpx;
    margin: 30rpx;
  }

  &__info {
    &__btn {
      margin-right: -12rpx;
      opacity: 0.5;
    }
  }

  &__label {
    &__item {
      line-height: 45rpx;
      padding: 0 20rpx;
      margin: 5rpx 18rpx 0 0;

      &--prefix {
        color: #00FFC8;
        padding-right: 10rpx;
      }
    }

    &__desc {
      line-height: 55rpx;
    }
  }

  &__main-image {
    border-radius: 16rpx 16rpx 0 0;

    &--1 {
      max-width: 690rpx;
      min-width: 690rpx;
      max-height: 400rpx;
      min-height: 400rpx;
    }

    &--2 {
      max-width: 260rpx;
      max-height: 260rpx;
    }

    &--3 {
      height: 212rpx;
      width: 100%;
    }
  }

  &__count-icon {
    font-size: 40rpx;
    padding-right: 5rpx;
  }
}

.image-qrcode {
  padding: 180rpx 0rpx;
  font-size: 40rpx;
  font-weight: 300;
  position: relative;
}

.image-pic {
  background-size: cover;
  background-repeat: no-repeat;
  // background-attachment:fixed;
  background-position: top;
  border-radius: 10rpx;
}

/* 文章内容 end*/

/* 移动背景部分 start*/
.bg-contaniner {
  position: fixed;
  top: 0rpx;
  left: 0rpx;
  --text-color: hsl(0 95% 60%);
  --bg-color: hsl(0 0% 100%);
  --bg-size: 750rpx;
  height: 100%;
  display: grid;
  place-items: center;
  place-content: center;
  overflow: hidden;
  background-color: orange;
  z-index: -1;
}

.bg-contaniner::before {
  --size: 150vmax;

  grid-area: body;
  content: "";
  inline-size: var(--size);
  block-size: var(--size);
  background-image: url("https://resource.tuniaokj.com/images/animate/health.png");
  background-size: var(--bg-size);
  background-repeat: repeat;
  transform: rotate(0deg);
  opacity: 0.15;
  animation: bg 6s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .bg-contaniner::before {
    animation-duration: 0s;
  }
}

@keyframes bg {
  to {
    background-position: 0 calc(var(--bg-size) * -1);
  }
}

/* 移动背景部分 end*/

/* 底部tabbar start*/
.footerfixed {
  position: fixed;
  width: 100%;
  bottom: 0;
  z-index: 999;
  background-color: #FFFFFF;
  box-shadow: 0rpx 0rpx 30rpx 0rpx rgba(0, 0, 0, 0.07);
}

.tabbar {
  display: flex;
  align-items: center;
  min-height: 110rpx;
  justify-content: space-between;
  padding: 0;
  height: calc(110rpx + env(safe-area-inset-bottom) / 2);
  padding-bottom: calc(env(safe-area-inset-bottom) / 2);
}

.tabbar .action {
  font-size: 22rpx;
  position: relative;
  flex: 1;
  text-align: center;
  padding: 0;
  display: block;
  height: auto;
  line-height: 1;
  margin: 0;
  overflow: initial;
}

.tabbar .action .bar-icon {
  width: 100rpx;
  position: relative;
  display: block;
  height: auto;
  margin: 0 auto 10rpx;
  text-align: center;
  font-size: 42rpx;
  // line-height: 50rpx;
}

.tabbar .action .bar-icon image {
  width: 50rpx;
  height: 50rpx;
  display: inline-block;
}

.tabbar .action .bar-circle {
  position: relative;
  display: block;
  margin: -60rpx auto 20rpx;
  text-align: center;
  font-size: 52rpx;
  line-height: 90rpx;
  background-color: #01BEFF;
  width: 90rpx !important;
  height: 90rpx !important;
  overflow: hidden;
  border-radius: 50%;
  box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(1, 190, 255, 0.5);
}

.tabbar .action .bar-circle image {
  width: 60rpx;
  height: 60rpx;
  display: inline-block;
  margin: 15rpx auto 15rpx;
}
</style>
